iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
1
自我挑戰組

Laravel 實戰經驗分享系列 第 3

Laravel 實戰經驗分享 - Day3 Nginx 以及環境變數設置

  • 分享至 

  • xImage
  •  

本文同步發於我的部落格 - https://lajiooh.com/2020/09/18/ithome2020-day3/

在昨天我們提到了 php artisan serve 的問題,需要啟動一個真正的網路伺服器會是比較正確的做法,在今天,我們一起來學學 nginx 以及 Laravel 環境變數的設定吧!

.env - Laravel 的環境變數

在 Laravel 專案目錄底下會有一個 .env.example 的檔案,我們先以這個檔案作為基礎,去設置適合你專案的環境變數。

cp .env.example .env

由於在公司開發專案時,除了自己本機開發環境外,還有測試用的 Stage,以及正式環境的 Production 主機,因此我會另外複製兩個環境變數的檔案為 .env.stage.env.production,依照不同的使用環境做出不同設定,這樣才不會影響到營運的主機。

我們先執行指令產生網站專屬的密鑰,再打開 Laravel 的 .env 檔案

php  artisan key:generate

這個設定檔的開頭會設定專案的名字、Debug 模式是否要開啟等參數。第二個部分是有關資料庫的連接,我們可以透過這個地方將 Laravel 連上已開啟的 MySQL 資料庫。

APP_NAME=laravel-project
APP_ENV=local
APP_KEY=base64:
APP_DEBUG=true
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=user
DB_PASSWORD=password

Nginx 設定

nginx 設定可以至 /etc/nginx/site-available/ 這個資料夾內的 default 進行設定,通常一台機器內若有架設多個網站,可以利用多個設定檔方便區分不同網域或服務。

sudo vi /etc/nginx/site-available/default

設定方式如下

server {
      # listen 設定這個 server 監聽的 port
      listen 80;
      listen [::]:80;
      server_name 127.0.0.1;
      # 可將 root 視為一個入口,指到 Laravel 專案資料夾內的 public 資料夾
      root /var/www/[Laravel Project Name]/public;
      index index.php index.html;
   location / {
    # 這段的意義代表我們將所有的請求都交給 Laravel 的路由去處理,因此如 404 的頁面都是交由 Laravel 處理
        try_files $uri $uri/ /index.php?$query_string;
   }
   #所有 .php 的檔案交由 php-fpm 去做解析
   location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
   }
}

設定完成後,需要將這個設定檔連結至 site-enabled

sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/

確認 nginx 是否連接成功

sudo nginx -t

得到這個消息後便可重啟 nginx 囉!

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重啟 nginx

sudo service nginx restart

接下來在網址輸入 localhost 就可以直接進入你的 Laravel 專案囉!


上一篇
Laravel 實戰經驗分享 - Day2 開發環境設置
下一篇
Laravel 實戰經驗分享 - Day4 開發工具以及 Laravel 目錄結構
系列文
Laravel 實戰經驗分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言